/**
 * @Author : SL
 * @Date : 2019/5/30
 * @Version :1.0
 * @Last Modified by : SL
 * @Last Modified time : 2019/5/30
 **/
const fs = require('fs')
const path = require('path')

//callback 方式获取一个文件的内容
// function getFileContent(fileName,callback) {
//     const fullFileName = path.resolve(__dirname, 'files', fileName)
//     fs.readFile(fullFileName,(err,data)=>{
//         if (err){
//             console.error(err)
//             return
//         }
//         callback(
//             JSON.parse(data.toString())
//         )
//     })
// }
// //测试  callback-hell
// getFileContent('a.json',aData=>{
//     console.log(aData);
//     getFileContent(aData.next,bData=>{
//         console.log(bData);
//         getFileContent(bData.next,cData=>{
//             console.log(cData);
//         })
//     })
// })

//使用promise解决以上callback-hell，并获取内容
function getFileContent(fileName) {
    const promise = new Promise((resolve, reject) => {
        const fullFileName = path.resolve(__dirname, 'files', fileName)
        fs.readFile(fullFileName, (err, data) => {
            if (err) {
                reject(err)
                return
            }
            resolve(
                JSON.parse(data.toString())
            )
        })
    })
    return promise
}

getFileContent('a.json').then(aData => {
    console.log('a.json', aData)
    return getFileContent(aData.next)
}).then(bData => {
    console.log('b.json', bData)
    return getFileContent(bData.next)
}).then(cData => {
    console.log('c.json', cData)
})